package com.recorder.ui.recorder

import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.view.MotionEvent
import android.widget.Toast
import com.recorder.R
import com.recorder.utils.AudioUtil
import kotlinx.android.synthetic.main.recorder_activity.*

/**
 * Created by YWQ on 2018/9/14.
 * 包名:com.recorder.ui.recorder
 * 描述: 声纹录制的界面
 */
class RecorderActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)




        setContentView(R.layout.recorder_activity)
        /**
         * 设置触摸事件
         */
        touchListener()

        /**
         * 设置录音回调事件
         */
        recoderListener()


        /**
         * 返回点击事件
         */


        mBack.setOnClickListener {
            finish()
        }
    }


    /**
     * 初始化录音的工具
     */
    val instance = AudioUtil.getInstance()


    private fun touchListener() {


        var isRecord = false

        mStartRecord.setOnClickListener {


            when (isRecord) {

                true -> {
                    //正在录音 点击停止

                    mStartRecord.text = "开始录音"
                    //停止录音
                    //停止录音
                    instance.stopRecord()
                    //转换保存录音
                    instance.convertWaveFile()

                }


                false -> {

                    mStartRecord.text = "停止录音"
                    //开始录音
                    //开始录音
                    instance.startRecord()
                    instance.recordData()
                }

            }


            isRecord = !isRecord

        }


    }

    /**
     * 录音回调
     */
    private fun recoderListener() {
        instance.setOnVolumnListener(object : AudioUtil.OnVolumnListener {
            override fun filePath(path: String?) {

                Toast.makeText(this@RecorderActivity, "录音文件保存在:$path", Toast.LENGTH_LONG).show()
            }

            override fun volum(vo: Int) {
                /*
                根据返回的音量来设置图片等级
                 */
                runOnUiThread {

                    println("录音返回的分贝$vo")
                    mVoiceLineView.setVolume(vo - 25)

                }

            }
        })
    }

}